package main.java.fases;

import static org.junit.Assert.assertEquals;

import java.util.Vector;



public class FaseDecrepitud extends Fase {
	private String nombre;
	private Personaje personaje;
	private Vector<Personaje> personajes;
	private Boolean faseAcabada;
	private Dado dado;
	private  boolean variarACinco=false;
	private Integer secuelas;
	
	
	public boolean getVariarACinco(){ 
		return variarACinco;
	}
	public void setVariarACinco(boolean variar){
		variarACinco=variar;
	}
	public Personaje getPersonaje() {
		return personaje;
	}

	public void setJugador(Personaje personaje) {
		this.personaje = personaje;
	}

	public Vector<Personaje> getPersonajes() {
		return personajes;
	}

	public void setJugadores(Vector<Personaje> personajes) {
		this.personajes = personajes;
	}

	public Dado getDado() {
		return dado;
	}

	public void setDados(Dado dado) {
		this.dado = dado;
	}

	public Boolean laFaseHaTerminado(){
		return faseAcabada;
	}
	
	public FaseDecrepitud (Vector<Personaje> personajes,Integer secuela){
		secuelas=secuela;
		personaje=new Personaje(nombre,secuela);
		dado=new Dado();
		for(Personaje pers:personajes){
		faseDecrepitud(pers);
		}
		faseAcabada=true;
		this.personajes = personajes;
	}
	public void faseDecrepitud(Personaje personaje){
		System.out.println("El personaje "+personaje+ " realiza la Fase Decrepitud");
		Vector<Integer> dados=new Vector<Integer>();
		Integer numDados=personaje.getSecuelas();
		for(int i=0;i<numDados;i++){
			dados.add(dado.lanzarDado());
		}
		System.out.println("Tiene "+personaje.getSecuelas()+
		" secuelas por tanto tira "+personaje.getSecuelas()+" dados");
		System.out.println("Los numeros sacados son "+dados);
		for(Integer dado: dados){
			if(dado==6  || variarACinco==true){
				personaje.cambiarSecuelaPorDecrepitud();
				variarACinco=false;
			break;
			}
		}
		if(personaje.getDecrepitud()==4){
			personaje.jugadorMuere(personaje);
		}
		System.out.println("Mis secuelas y mi decrepitud al acabar la fase son respectivamente "
		+personaje.getSecuelas()+" y "+personaje.getDecrepitud());
		faseAcabada = true;
	}
	
}

